This invention relates generally to computer systems, and more particularly to graphical user interfaces for computer systems.
Graphical user interfaces or GUI are becoming increasingly popular with computer users. It is generally accepted that computers having graphical user interfaces are easier to use, and that it is quicker to learn an application program in a GUI environment than in a non-GUI environment.
A relatively new type of computer which is well suited for graphical user environments is the pen-based computer system. A pen-based computer system is typically a small, hand-held computer where the primary method for inputting data includes a "pen" or stylus. A pen-based computer system is often housed in a relatively flat enclosure, and has a dual-function display assembly which serves as both an input device and an output device. When operating as an input device, the display assembly senses the position of the tip of a stylus on the viewing screen and provides this positional information to the computer's central processing unit (CPU). Some display assemblies can also sense the pressure of the stylus on the screen to provide further information to the CPU. When operating as an output device, the display assembly presents computer-generated images on the screen.
The dual-function display assemblies of pen-based computer systems permit users to operate the computer as a computerized notepad. For example, graphical images can be input into the pen-based computer by merely moving the stylus across the surface of the screen. A stroke is defined as the engagement of the screen with a stylus, the movement of the stylus across the screen (if any), and its subsequent disengagement from the screen. As the CPU senses the position and movement of the stylus, it generates a corresponding image on the screen to create the illusion that the stylus is drawing the image directly upon the screen, i.e. that the stylus is "inking" an image on the screen. With suitable recognition software, text and numeric information can also be entered into the pen-based computer system in a similar fashion. Besides serving as a notepad, pen-based computers can provide a number of useful functions, such as serving as an address book, an appointment calendar, a to-do list, etc.
Ink on the screen of a pen-based computer system is typically stored as a simple bit-map. Essentially, the only knowledge that the computer system has of the inked image is that certain pixels of the display are activated to create the inked image. Therefore, a hand-drawn shape, such as a square or circle, has no meaning to the system other than certain pixels of the screen are to be turned on or off to create an inked image of the words.
It would be desirable to be able to recognize a hand-drawn shape as falling within a generic class such as squares, circles, etc. In this way, additional meaning can be attached to the hand-drawn shapes, allowing the computer to manipulate the shapes in a more intelligent fashion. For example, it would be desirable for a computer to recognize a hand-drawn square or circle, and return a perfectly formed square or circle in its place.
Some specific application programs of the prior art can perform a limited shape recognition task. For example, some prior art drafting application programs can "auto-trace" a scanned-in image which can be "cleaned up" by the application program. However, the recognizing ability of such application programs is limited, and do not recognize shapes in a "real-time" manner as would be required in a pen-based computer system.